package com.xizi.forum.service;

import com.xizi.forum.model.MessageInfo;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface IMessageInfoService {
    /**
     * 创建站内信
     * @param message
     * @return
     */
    Boolean create (MessageInfo message);

    /**
     * 获取站内信未读的数量
     * @param id 当前登入用户id
     * @return
     */
    Long selectUnreadCount(Long id);

    /**
     * 获取所有站内信
     * @param id 当前登入用户id
     * @return
     */
    List<MessageInfo> getAllMessageByUserId(Long id);


    MessageInfo selectById(Long id);

    /**
     * 修改站内信状态
     * @param id 当前站内信id
     * @return
     */
    void updateStateById(Long id, Byte state);

    /**
     * 站内信回复
     * @param repliedId 回信用户id
     * @param message 信
     */
    @Transactional
    void reply (Long repliedId, MessageInfo message);

    /**
     * 通过id删除站内信（逻辑删除）
     * @param id
     * @return
     */
    Boolean deleteById(Long id);
}
